//
// Created by HP on 2022/1/31.
//

#ifndef VULKAN_TUTORIAL_LVE_UTILS_H
#define VULKAN_TUTORIAL_LVE_UTILS_H

#include <functional>

namespace lve {
    // https://stackoverflow.com/questions/2590677/how-do-i-combine-hash-values-in-c0x
    template <typename T, typename... Rest>
    void hashCombine(std::size_t & seed, const T& v, Rest... rest)
    {
        seed ^= std::hash<T>{}(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
        (hashCombine(seed, rest), ...);
    }
}

#endif //VULKAN_TUTORIAL_LVE_UTILS_H
